package Interface;
import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

import org.netbeans.lib.awtextra.AbsoluteConstraints;
import org.netbeans.lib.awtextra.AbsoluteLayout;

import Classes.ManipulaArquivo;
import Classes.ManipulaEstabelecimento;
import Classes.ManipulaUsuario;
import Classes.Usuario;

import java.awt.*;
import java.awt.event.*;

public class MenuCadastro extends JPanel implements ActionListener , ListSelectionListener{
	
	private JLabel nome;
	private JButton salvar;
	private JComboBox box;	
	private JTextField textoNome;
	private JList listaNotas;
	private JScrollPane scrollLista;	
	private String[] nomes = ManipulaEstabelecimento.getNomes();
	private JButton voltar;
	private JButton adicionar;
	
	private String[] notas = {"-5 : Detesto" , "-4 : Acho muito ruim", "-3 : Acho bastante ruim", "-2 : Acho ruim", 
			"-1 : Acho um pouco ruim", "0 : Não conheço", "1 : Não é ruim","2 : É bonzinho", "3 : Bastante bom", "4 : Muito bom",
			"5 : Incrível, sensacional, impressionante"};	
	private Usuario user;
	
	public MenuCadastro(){	
		
		setLayout(new AbsoluteLayout());
		setSize(800, 600);
		
		
		
		botoes();
		montaPainel();
		eventos();
		user = new Usuario(textoNome.getText());
		user.semNotas();
		
	}	
	
	public String[] getNomes(){
		return nomes;
	}		
	
	public void botoes(){
		nome = new JLabel("Nome");	
		//nome.setBounds(10, 30, 100, 23);
		
		textoNome = new JTextField("Digite seu nome");
		//textoNome.setBounds(10, 70, 100, 23);
		
		adicionar = new JButton("Adiconar nota");
		//adicionar.setBounds(10, 200, 100, 50);
		
		salvar = new JButton("Salvar");
		//salvar.setBounds(10, 100, 100, 23);
		
		box = new JComboBox(getNomes());		
		//box.setLocation(10, 130);
		box.setMaximumRowCount(5);
		Dimension tamanhoBox = box.getPreferredSize();
		box.setSize(tamanhoBox);
		
		voltar = new JButton("Voltar");
		//voltar.setBounds(10, 170, 100, 23);
		
		listaNotas = new JList(notas);
		listaNotas.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		listaNotas.setVisibleRowCount(5);
		Dimension tamanhoListaNotas = listaNotas.getPreferredSize();		
		listaNotas.setSize(tamanhoListaNotas);
		
		scrollLista = new JScrollPane(listaNotas);
		//scrollLista.setLocation(500, 300);
		Dimension tamanhoScroll = scrollLista.getPreferredSize();
		scrollLista.setSize(tamanhoScroll);
	}
	
	public void montaPainel(){		
		add(nome,new AbsoluteConstraints(10, 30, 100, 23));
		add(textoNome, new AbsoluteConstraints(10, 70, 100, 23));
		add(adicionar, new AbsoluteConstraints(10, 200, 100, 25));
		add(box, new AbsoluteConstraints(10, 130));
		add(voltar, new AbsoluteConstraints(10, 170, 100, 23));
		add(salvar, new AbsoluteConstraints(10, 100, 100, 23));
		add(scrollLista, new AbsoluteConstraints(500, 300));
	}
	
	public void eventos(){
		box.addActionListener(this);		
		textoNome.addActionListener(this);
		voltar.addActionListener(this);
		salvar.addActionListener(this);
		listaNotas.addListSelectionListener(this);
		adicionar.addActionListener(this);
	}
	
	@Override
	public void actionPerformed(ActionEvent e) {
		
		
		if(e.getSource() == voltar){
			Executa.trocaPainel(new MenuPrincipal());
		}
		if(e.getSource() == salvar){
			
			//salvar no arquivo e ler			
						
			
		}
		
		if(e.getSource() == adicionar){
			if(listaNotas.isEnabled()){
				JOptionPane.showMessageDialog(null, "não tá selecionado");
			}
			else{
				user.setNota(box.getSelectedIndex(), notas[listaNotas.getSelectedIndex()]);	
				System.out.println(user.imprimeNotas());
			}
			
		}
	}
	
	@Override
    public void valueChanged(ListSelectionEvent event) {
		JOptionPane.showMessageDialog(null, listaNotas.getSelectedValue());
		
	}
	

}
